1. Field of the Invention
This invention is relevant to the effective solution concerning the problems consisting of any constraint condition, and especially, the Constraint-based Solution Method, Constraint-based Solver, and Constraint-based Solution System, which becomes practicable only by setting the constraint conditions, of which the procedure for constraint propagation is considered, and the variable values.
2. Description of the Related Art
The procedural programming method, in which the user describes the procedures of data (algorithm) successively after the procedural declaration of data structures using programming languages such as, for example, C language and JAVA, is the mainstream of current common programming methods for various application programs. The procedures of data by this procedural programming are, in principle, correspondent with the procedures that computers actually execute, except that optimization is performed by the optimizing functions of compiling programs. Therefore, the procedural programming method is a solution method, which can flexibly respond to various problems through describing the details of computer (CPU) behaviors.
As an alternative method for the above-mentioned procedural programming method, which describes CPU behaviors, there is the declarative programming method. This is the method to leave everything to the CPU as for actual data procedures after the constraint conditions which are corresponding to the target problems are defined by the user, and it has been conventionally used as a convenient problem solution method for certain problem areas. (e.g. Patent Document 1 or 2)
The aforementioned declarative programming has characteristics that the user has only to wait for solution to be output just describing constraint conditions, whereas they cannot interfere with the order in which the CPU executes data processing. Among the programming methods, which are broadly divided into two aforementioned groups, the procedural programming method is mainly used in the current computing environment.
If program development is performed in this procedural programming method, as soon as the user defines the data structure, algorithm, which should be described with the data structure, is usually determined in conjunction with that. Furthermore, such algorithm can be expressed in the same procedure and patterned for the similar target problems.
Consequently, it has been a conventional problem that program development becomes inefficient in that same kind of programming works are overlapped in each application. To cope with this problem, recently, programming works have been promoted to be highly efficient through actively introducing the partialization of software by the creation of libraries of programming parts which are commonly used and software development based on object-orientation, thus focusing on the parts which existing programs do not have.